﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using System.Text.RegularExpressions;

namespace Procesos
{
    public class Validar
    {
        public static uint validarCI(string ci)
        {
            if (ci.Length < 6) throw new Exception("La longitud del CI debe ser mayor a 5");
            else if (ci.Length > 9) throw new Exception("La longitud del CI no debe ser mayor a 9");
            try
            {
               return Convert.ToUInt32(ci);

            }
            catch (FormatException)
            {
                throw new Exception("debe ser un valor entero");
            }
        }
        public static int validarTelefono(string telefono)
        {
            if (telefono.Length != 7) throw new Exception("La longitud de un telefono es 7 digitos");
            try
            {
                return Convert.ToInt32(telefono);

            }
            catch (FormatException)
            {
                throw new Exception("debe ser un valor entero");
            }
            
        }
        public static void validarPasswordsIguales(string pass,string repetido)
        {
            if(String.IsNullOrEmpty(repetido))
                throw new Exception("Este campo no puede estar vacio");
            if (pass!=repetido)
            {
                throw new Exception("Las contraseñas no concuerdan");
            }
            
        }
        public static void validarPassword(string pass)
        { 
            if(String.IsNullOrEmpty(pass))
            {
            throw new Exception("Este campo no puede estar vacio");
            }
            if (!Regex.IsMatch(pass, @"(?=^.{8,15}$)(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?!.*\s).*$"))
            throw new Exception("El password debe tener combinaciones de caracteres, mayusculas y minusculas, longitud minima de 8");
        }
        public static void validarMail(string mail)
        {
            if(String.IsNullOrEmpty(mail))
                throw new Exception("Este campo no puede estar vacio");
            try
            {
                MailAddress m = new MailAddress(mail);
                
            }
            catch (FormatException ex)
            {
                throw ex;
            }
        }
        public static void validarVacio(string campo)
        {
            if (String.IsNullOrEmpty(campo))
                throw new Exception("Este campo no puede estar vacio");
        }
        public static int validarCelular(string celular)
        {
            if (celular.Length != 8) throw new Exception("La longitud de un celular es 8 digitos");
            try
            {
                return Convert.ToInt32(celular);

            }
            catch (FormatException)
            {
                throw new Exception("debe ser un valor entero");
            }

        }
    }
}
